package com.biancheng.biancheng.biancheng6;

public class 一堆桃子五只猴子 {

    public static void main(String[] args) {

        div1();

        div2();

        div3();

    }

    //第一种方法
    public static void div1(){
        int peaches=6;//桃子总数
        while(true){
            peaches+=5;//桃子每次加5个，保证能被5整除，提高执行效率
            int temp=peaches;//桃子数的计数器
            int t=0;//满足条件次数的计数器
            for(int i=1;i<=5;i++){
                if((temp-1)%5==0){
                    temp=(temp-1)*4/5;
                    t++;
                }
                else {
                    break;
                }
            }
            if(t==5)//5次满足条件，程序结束
                break;
        }
        System.out.println(peaches);
    }
//第二种方法
    public static void div2() {
        int n=1;//第五个猴的桃
        int m=0;// 分之前的桃
        int flag=1;
        while(true){
            flag=1;
            m=5*n+1;
            for(int i=5;i>=1;i--){
                if(m%(5-1)==0){
                    m=m/(5-1)*5+1;
                    flag++; //计算多少次的桃子数量被4整除
                }
                else
                    break;
            }
            if(flag==5) //每次的桃子数量都能被4整除
                break;
            n++;
        }
        System.out.println("开始的桃子数至少是："+m);
        System.out.print("此时第五个猴子得到的桃子数是："+n);
    }

//第三种方法

    public static void div3(){

        int monkey=1;//要分桃的猴子数

        int peaches=1;//桃的总数

        int peach=1;//每次分桃的总数

//循环进行给每个猴子分桃

        while(monkey<=5){

            if(peach%5==1&&peach/5!=0){//如果成功分桃

                peach=(peach/5)*4;//可分桃的总数为现在的4/5

                monkey++;//换下一个猴子

            }

            else{//如果失败，重新分桃这时可分桃数量加1

                peaches++;

                peach=peaches;

                monkey=1;

            }

        }

        System.out.println("桃的最小总数为："+peaches);

    }


}
